x = 10
print(x)
x = 20
print(x)10
20
Un peu de révisions ne fait jamais de pas de mal
Ményssa Cherifa-Luron
14 juin 2024
Si tu as déjà des notions avancées en prog Python, passe directement à la programmation orientée objets
Sinon, si tu es là c’est que tu veux apprendre Python, et que tu me fais confiance pour être ta formatrice ! Alors MERCI !!
Avant de commencer ta lecture du cours, note que le texte dans une cellule noir, chunk, représente du code python. En dessous de chaque chunk, tu trouveras le résultat de correspondant à l’exécution des intructions contenues dans le chunk.
Voilà c’est tout. Let’s go !
Alors comme ça, tu veux en savoir plus sur les origines de ce langage mythique ? Accroche-toi, je te raconte !
Fig 1. Logo python
Python, c’est l’œuvre d’un certain Guido van Rossum, qui l’a créé en 1989.
Et devine quoi ? Le nom “Python” n’a rien à voir avec les serpents ! C’est en fait un clin d’œil à la série loufoque “Monty Python’s Flying Circus”. Comme quoi, l’humour et la programmation font bon ménage ! 😄
Mais Python, c’est bien plus qu’une private joke. Ce langage a de sacrés atouts comme par exemple le fait qu’il est :
✅ Multi-plateforme : il s’adapte à tous les environnements, tel un caméléon
✅ Gratuit et libre : accessible à tous les padawans de la data
✅ Haut niveau et interprété : parfait pour progresser rapidement
✅ Orienté objet : pour modéliser le monde réel de façon intuitive
✅ Simple et lisible : le code Python se lit presque comme de l’anglais
Mais pour coder comme un pro, il te faudra plus qu’aligner des instructions et des lignes de commandes. Il te faudra adopter le style d’un pythonista. Aussi, je te réserve un petit passage dessus à la fin de ce cours. Mais si tu es pressé, jette un œil à mon mini-cours juste ici
Tu verra que la PEP8, c’est un peu la bible des bonnes pratiques, largement suivie dans l’industrie.
Ensuite, parlons environnement de dev. Tu vas sûrement bosser sur Jupyter ou Google Colab pour tes notebooks.
C’est top, mais attention : si tu bosses sur plusieurs projets, tu vas vite te retrouver avec un joyeux bordel de versions de modules Python !
La solution ? Les environnements virtuels ! C’est un peu comme avoir un appart’ dédié pour chaque projet, avec ses propres meubles (modules) et sa déco (config). Bref, ça t’évitera bien des maux de tête. Comme la gestion d’environnement virtuel est un peu avancé, nous verrons pas cela aujourd’hui, mais tu peux quand même y jeter un oeil à ce mini-cours juste ici
Si tu veux en savoir plus sur les options de setup Python (local vs cloud), jette un oeil à cet article. C’est une mine d’or !
Enfin, le truc CRUCIAL à retenir : en Python, l’indentation c’est pas juste pour faire joli. C’est VITAL pour que ton code marche ! Alors on prend direct le pli d’utiliser 4 espaces (pas de tabs, hein !).
Bref, Python a tout pour plaire, c’est le couteau suisse du développeur !
Alors prët à apprendre, coder et s’amuser ?
En savoir plus ? Rends toi sur le site officiel
Avant de commencer à écrire du code en Python, il faut d’abord installer Python sur ton ordinateur. Voici comment faire en quelques étapes simples.
cmd et appuie sur Entrée).python --version et appuie sur Entrée. Tu devrais voir la version de Python s’afficher, confirmant ainsi que Python est installé correctement.python3 --version et appuie sur Entrée. Tu devrais voir la version de Python s’afficher, confirmant ainsi que Python est installé correctement.La plupart des distributions Linux incluent Python par défaut. Toutefois, tu peux installer ou mettre à jour Python en suivant ces étapes :
sudo apt update (pour les systèmes basés sur Debian/Ubuntu) ou sudo yum update (pour les systèmes basés sur Red Hat/Fedora) et appuie sur Entrée.sudo apt install python3sudo yum install python3python3 --version et appuie sur Entrée. Tu devrais voir la version de Python s’afficher, confirmant ainsi que Python est installé correctement.Pour écrire du code en Python, tu auras besoin d’un éditeur de code ou d’un environnement de développement intégré (IDE). Voici quelques recommandations :
pip install notebook.Pour vérifier que tout fonctionne correctement, ouvre ton éditeur de code ou ton terminal, ouvre un script et tape le code suivant :
Si tu vois s’afficher Hello, World!, félicitations ! Tu es prêt à commencer ton aventure en Python. 🚀
Maintenant que Python est installé sur ton ordinateur, passons aux commentaires.
Alors, c’est quoi un commentaire ? En gros, c’est tout ce que tu écris dans ton code mais qui sera royalement ignoré par Python quand il exécutera ton programme. 👑 Ça peut te sembler inutile dit comme ça, mais crois-moi, les commentaires, c’est la vie !
Déjà, ça te permet d’expliquer ce que fait ton code. Parce que bon, quand tu reviens sur un vieux script que t’as écrit y’a 6 mois, des fois tu te demandes ce qui t’es passé par la tête… 🤔 Bah avec des commentaires, plus de problème ! C’est comme un petit mot que tu laisses à ton toi du futur. 😉
En Python, t’as deux façons de faire des commentaires :
# et hop, tout ce qui suit sur la ligne, Python n’en a rien à cirer. C’est parfait pour faire des mini-explications.# Ceci est un commentaire d'une ligne
print("Hello World!") # Je peux aussi mettre un commentaire après une instruction""" ou '''. C’est comme des gros pavés de texte que Python va ignorer. C’est top pour écrire de la doc !"""
Ceci est un commentaire
sur plusieurs lignes.
Pratique pour écrire de longues explications !
"""Maintenant, comment bien utiliser les commentaires comme un pro ? Voici quelques tips :
Utilise les commentaires pour expliquer POURQUOI tu fais quelque chose, pas COMMENT. Le code lui-même devrait être assez clair pour qu’on comprenne comment il marche.
Mets tes commentaires au-dessus du code qu’ils expliquent. Et laisse une ligne vide entre le commentaire et le code, c’est plus joli. 😄
N’oublie pas de mettre à jour tes commentaires quand tu modifies ton code ! Sinon, c’est le bordel assuré. 😱
Pour les longs commentaires, utilise des phrases complètes avec majuscule et point. Pour les commentaires d’une ligne, tu peux être plus relax.
Évite les commentaires qui ne servent à rien. Si ton code est clair, pas besoin d’en rajouter une couche !
Regarde ce bout de code par exemple :
# Calcule la moyenne des notes
def calculer_moyenne(notes):
"""
Calcule la moyenne d'une liste de notes.
Paramètres :
- notes (list) : Une liste de notes (entiers ou flottants)
Retourne :
- La moyenne des notes (float)
"""
total = sum(notes) # additionne toutes les notes
moyenne = total / len(notes) # divise par le nombre de notes
return moyenneC’est clair, net et précis. Tout ce qu’il faut pour que même ton petit cousin comprenne ce que fait ta fonction ! 😉
Voilà, tu sais tout sur les commentaires en Python maintenant. N’hésite pas à en mettre partout dans ton code, tes collègues (et ton toi du futur) te remercieront ! 🙏
En résumé, les commentaires sont des outils essentiels pour rendre ton code plus compréhensible et maintenable sur le long terme. Prends le temps de les rédiger avec soin, tes collègues (et ton toi du futur) te remercieront !
Quelques tips de pro pour tes commentaires :
Sois bref mais explicite
Indique l’objectif du bloc de code
Explique les paramètres et valeurs retournées des fonctions
Note les points d’amélioration possibles
Avec des bons commentaires, ton code devient facile à suivre !
Ils commencent par un # et s’étendent jusqu’à la fin de la ligne.
Les variables, c’est un peu comme des boîtes dans lesquelles tu peux ranger des trucs : des nombres, du texte, etc.
Par exemple, si tu écris x = 10, tu crées une variable “x” qui contient (ou stock) la valeur 10. Easy !
Le truc cool avec Python, c’est qu’il devine tout seul le type de données que tu mets dans la variable.
C’est ce qu’on appelle le typage dynamique. Pratique, non ?
Quelques règles de base à retenir sur les variables :
Pour donner une valeur à une variable, on utilise le signe égal (=). C’est l’affectation.
Tu peux écraser la valeur d’une variable en lui réaffectant une nouvelle valeur. Exemple :
Pour les noms de variables, tu as le choix entre :
la casse camel : monNomDeVariable
la casse Pascal : MonNomDeVariable
la casse serpent : mon_nom_de_variable
Évite juste de commencer les noms par des chiffres, d’utiliser des caractères spéciaux et de mélanger chiffres et lettres n’importe comment.
Allez, on récapitule le tout dans le script suivant :
# Affectation simple
Ma_variable = 10
print(Ma_variable)
# Affectation de plusieurs valeurs
x, y, z = "Chocolat", "Vanille", "Fraise"
print(x)
print(y)
print(z)
# Affectation de la même valeur
x = y = z = "Chocolat"
print(x)
print(y)
print(z)10
Chocolat
Vanille
Fraise
Chocolat
Chocolat
Chocolat
En Python, chaque variable a un type bien précis. C’est un peu comme les groupes sanguin : A, B, AB ou O. Sauf qu’ici, on a :
Les entiers (int) : pour les nombres sans virgule. Exemples : 5, -3, 0.
Les nombres complexes (complex) : pour les maths de l’espace ! Exemple : 3 + 4j.
Les flottants (float) : pour les nombres à virgule. Exemples : 3.14, -0.001.
Les chaînes de caractères (str) : pour le texte, entouré de guillemets. Exemple : “Hello World!”
Les booléens (bool) : pour les valeurs “vrai” (True) ou “faux” (False). Souvent le résultat de comparaisons.
Pourquoi c’est important de connaître le type d’une variable ? Parce que tu ne peux pas additionner des pommes et des poires ! Enfin si, mais ça donne une compote que je n’aime pas… 🍎+🍐=🤢
Plus sérieusement, chaque type a ses propres opérations possibles. Tu peux multiplier deux int, concaténer deux str, mais pas l’inverse.
Allez, un petit défi : devine le type des variables suivantes :
a = 42
b = “42”
c = 42.0
d = True
e = 2 + 3j
Une fois une variable définie, pour obtenir son type tu peux utiliser la commande type().
# Afficher le type d'une variable
bonjour = "Hello"
type(bonjour)
# Définition de plusieurs variables
nom = "Alice"
age = 25
taille = 1.70
estVrai = True
estFaux = False
print("la variable nom est de type :", type(nom))
print("la variable age est de type :",type(age))
print("la variable taille est de type :",type(taille))
print("la variable estVrai est de type :",type(estVrai))
print("la variable estFaux est de type :",type(estFaux))la variable nom est de type : <class 'str'>
la variable age est de type : <class 'int'>
la variable taille est de type : <class 'float'>
la variable estVrai est de type : <class 'bool'>
la variable estFaux est de type : <class 'bool'>
Le casting, c’est un peu comme dans un film : tu prends un acteur (une valeur) et tu lui fais jouer un autre rôle (un autre type). 🎥
En Python, tu peux facilement convertir une variable entre les types de base par exemple :
🎬 int ➡ str
🎬 str ➡ int
🎬 float ➡ int
🎬 int ➡ bool
Mais attention aux pièges !
Toutes les conversions ne sont pas possibles, comme transformer un texte en nombre :
prix = "dix" prix_int = int(prix) # Erreur : ValueError
int)str)bool)## Depuis une chaîne de caractères** :
chaine = ""
booleen = bool(chaine) # Convertit une chaîne vide en False
chaine2 = "Python"
booleen2 = bool(chaine2) # Convertit "Python" en True
## Depuis un nombre :
nombre = 0
booleen = bool(nombre) # Convertit 0 en False
nombre2 = 123
booleen2 = bool(nombre2) # Convertit 123 en Truefloat)## Depuis une chaîne de caractères:
chaine = "123.45"
flottant = float(chaine) # Convertit la chaîne "123.45" en float 123.45
## Depuis un entier :
entier = 100
flottant = float(entier) # Convertit l'entier 100 en float 100.0
## Depuis un booléen:
vrai = True
flottant = float(vrai) # Convertit True en 1.0En Python, tu peux faire des maths facilement avec ces 4 opérateurs :
L’addition (+) : pour ajouter des nombres Exemple : 3 + 2 = 5
La soustraction (-) : pour soustraire des nombres Exemple : 5 - 2 = 3
La multiplication (*) : pour multiplier des nombres Exemple : 3 * 2 = 6
La division (/) : pour diviser des nombres Exemple : 6 / 2 = 3
Facile, non ? Mais attends, y’a encore plus fort ! Python gère aussi :
Les puissances (**) : pour les exposants Exemple : 2 ** 3 = 8 (2 puissance 3)
Les divisions entières (//) : pour obtenir un résultat entier Exemple : 7 // 2 = 3
Les modulos (%) : pour obtenir le reste d’une division Exemple : 7 % 2 = 1 (car 7 divisé par 2 donne 3 reste 1)
Grâce à ces 2 opérateurs magiques :
La concaténation (+) : pour combiner des chaînes Exemple : “Hello” + ” World!” = “Hello World!”
La répétition (*) : pour répéter une chaîne un certain nombre de fois Exemple : “Ha” * 3 = “HaHaHa”
C’est aussi simple que ça ! Mais attention, y’a quelques règles à respecter :
⚠️ Tu ne peux pas concaténer des types différents (string + int par exemple). Faudra d’abord les convertir.
⚠️ La répétition ne marche qu’avec des entiers positifs. Pas de “Ha” * -3 ou “LOL” * 2.5 !
Les opérateurs d’affectation composés sont des raccourcis qui combinent une opération arithmétique ou binaire avec une affectation.
En gros, ils permettent d’effectuer une opération sur une variable et de lui réaffecter le résultat en une seule étape.
Commençons par la base : la fonction print(). Elle affiche simplement le texte que tu lui passe entre parenthèses. C’est comme un écriteau lumineux ! ✨
Mais que faire si tu veux inclure des valeurs de variables dans ton message ?
C’est là que le formatage entre en jeu ! 🎭
La méthode traditionnelle utilise la fonction format() :
Je m'appelle Alice et j'ai 25 ans.
C’est comme un modèle où {} sont des espaces réservés pour tes variables. Tu les remplis ensuite avec format() dans l’ordre.
Mais depuis Python 3.6, il y a une méthode encore plus cool : les f-strings !
Je m'appelle Bob et j'ai 30 ans.
Avec les f-strings, tu mets un f avant les guillemets et tu peux directement insérer tes variables entre {}. C’est plus concis et plus lisible !
Tu peux même faire des calculs dans les accolades :
Que dis-tu de formater tes nombres pour qu’ils aient toujours un certain nombre de décimales ? C’est super pratique pour afficher des prix ou des pourcentages !
Avec :.2f, tu dis à Python d’afficher ton nombre avec 2 décimales et un format flottant.
Et si tu veux aligner ton texte ? Pas de problème, Python a ce qu’il te faut !
produit = "pommes"
quantite = 3
print(f"{'Produit':<10} {'Quantité':>10}")
print(f"{produit:<10} {quantite:>10}")Produit Quantité
pommes 3
Avec :<10, :^10, et :>10, tu alignes le texte à gauche, au centre, ou à droite sur 10 caractères. C’est parfait pour créer des tableaux bien alignés !
Tu peux même combiner ces options pour un contrôle total du formatage :
La fonction input() est comme un formulaire ! Elle permet de demander à l’utilisateur de saisir des données au clavier.
Ici, le programme demande à l’utilisateur de saisir son nom, puis le salue personnellement. C’est comme un dialogue interactif !
Quelques points importants à noter :
La fonction input() renvoie toujours une chaîne de caractères (str). Si tu veux un nombre, tu dois convertir la réponse avec int() ou float().
Tu peux stocker la réponse de l’utilisateur dans une variable pour l’utiliser plus tard dans ton programme.
N’oublie pas d’afficher un message clair pour guider l’utilisateur sur ce qu’il doit saisir.
Voici un autre exemple pour calculer l’âge d’une personne :
nom = input("Comment vous appelez-vous ? ")
age = int(input("Quel âge avez-vous ? "))
print(f"{nom}, dans 10 ans vous aurez {age + 10} ans !")Ici, on demande le nom et l’âge de l’utilisateur. On convertit l’âge en nombre entier avec int() pour pouvoir faire un calcul. Puis on affiche un message personnalisé. C’est magique ! ✨
🔢 Les variables sont des espaces de stockage nommés pour contenir des données qui peuvent changer pendant l’exécution du programme.
🎨 Les types de données incluent les entiers, les flottants, les chaînes de caractères, les booléens, etc.
➕ Les opérateurs pour les nombres incluent + (addition), - (soustraction), * (multiplication), / (division), % (modulo).
🔗 Pour les chaînes, + sert à la concaténation et * à la répétition.
🔄 Les opérateurs composés (+=, -=, *=, /=, %=) combinent opération et affectation.
🖨️ La fonction print() affiche du texte et des valeurs de variables.
🎭 La méthode format() permet d’insérer des valeurs dans un modèle de chaîne.
📝 La fonction input() permet de demander une saisie à l’utilisateur.
Ouvre un notebook intitulé : 1_variables.ipynb et mets tes connaissances à l’épreuve avec ces exercices rapides :
nom et assigne-lui ton prénom.age et assigne-lui ton âge.nom et age en utilisant la fonction print().x et assigne-lui la valeur 10.y et assigne-lui la valeur 5.somme et calcule la somme de x et y.somme.prenom et assigne-lui ton prénom.nom_famille et assigne-lui ton nom de famille.nom_complet et concatène prenom et nom_famille avec un espace entre eux.nom_complet.a, b, c et assigne-leur respectivement les valeurs 1, 2 et 3 en une seule ligne.a, b et c en une seule ligne en utilisant print().temp et assigne-lui la valeur 10.temp la valeur 20.temp.prix et assigne-lui la valeur “100” (chaîne de caractères).prix en entier et assigne-le à une nouvelle variable prix_entier.prix_entier et affiche le résultat.input().format()print()print("Bienvenue dans le Générateur de Cartes de Visite ! 🎨")
# nom = input("Quel est votre nom ? ")
# poste = input("Quel est votre poste ? ")
# email = input("Quelle est votre adresse email ? ")
# telephone = input("Quel est votre numéro de téléphone ? ")
print("Voici votre carte de visite :")
print("================================")
print("| {:<30} |".format(nom))
print("| {:<30} |".format(poste))
print("| {:<30} |".format(email))
print("| {:<30} |".format(telephone))
print("================================")Ton code est comme un GPS qui te guide vers ta destination (le résultat). Les structures de contrôle sont les différentes routes que tu peux emprunter en fonction des conditions ou des répétitions.
Les structures de contrôle :
🧠 La prise de décision : elles permettent à ton programme de faire des choix intelligents en fonction de conditions spécifiques. Un peu comme choisir entre prendre le métro ou le vélo selon la météo ! ⛅
🔁 La répétition de tâches : tu peux répéter des actions à l’infini sans avoir à réécrire le même code.
🎛️ La gestion du flux : tu as un contrôle total sur le déroulement de ton programme. Tu peux décider quand accélérer, ralentir ou faire des détours.
Les opérateurs permettent de définir des expressions logiques. qui servent de conditions pour diriger le flux d’exécution du programme. Voilà c’est tout.
Les opérateurs de comparaison sont essentiels en Python. Ils comparent deux valeurs et renvoient soit True soit False, selon le résultat de la comparaison.
C’est comme avoir un juge impartial qui te dit si deux valeurs sont égales, différentes, ou laquelle est plus grande que l’autre.
| Opérateur comparaison | Description | Exemple | Résultat |
|---|---|---|---|
| == | Égalité | 5 == 5 |
True |
| != | Différent de | 5 != 3 |
True |
| > | Supérieur à | 5 > 3 |
True |
| < | Inférieur à | 3 < 5 |
True |
| >= | Supérieur ou égal à | 5 >= 5 |
True |
| <= | Inférieur ou égal à | 3 <= 5 |
True |
Les opérateurs logiques sont les gardiens de la vérité en Python. Ils te permettent de combiner des expressions logiques pour obtenir un résultat final basé sur les conditions spécifiées. C’est comme créer des alliances stratégiques pour découvrir la vérité ultime.
| Opérateur logique | Description | Exemple | Résultat |
|---|---|---|---|
| and | Et | True and False |
False |
| or | Ou | True or False |
True |
| not | Non | not True |
False |
Les opérateurs d’appartenance vérifient si une valeur ou une chaîne de caractères se trouve à l’intérieur d’une autre valeur, chaîne de caractères ou séquence.
| Opérateur d’appartenance | Description | Exemple | Résultat |
|---|---|---|---|
| in | Dans | 'a' in 'banana' |
True |
| not in | Pas dans | 'x' not in 'banana' |
True |
texte = "Hello, World!"
print('H' in texte)
print('hello' in texte)
print('Hello' not in texte)
print('x' not in texte) True
False
False
True
Les opérateurs permettent de définir des expressions logiques.
Voici quelques exemples :
Ouvre un notebook intitulé : 2_structures_controles.ipynb et mets tes connaissances à l’épreuve avec ces exercices rapides :
a et b avec des valeurs différentes. Utilise tous les opérateurs de comparaison pour imprimer les résultats des comparaisons entre a et b.a est supérieur à b et si a est pair.# Déclaration de la chaîne de caractères
texte = "Hello, World!"
# Vérification de la présence de sous-chaînes
print("'Hello' in texte:", 'Hello' in texte)
print("'hello' in texte:", 'hello' in texte)
print("'World' not in texte:", 'World' not in texte)
print("'Python' not in texte:", 'Python' not in texte) Imagine que tu es en train de coder le GPS de Waze, ton boulot est de créer un programme qui indique à l’utilisateur la bonne route à prendre en fonction des conditions de circulation.
C’est exactement ce que font les instructions if, elif et else ! 🚦
🟢 L’instruction if teste une condition. Si elle est vraie, le code sous le if est exécuté. C’est comme si ton GPS disait : “Si la route est dégagée, prends la voie rapide !” 🏎️
🟡 L’instruction elif (abréviation de “else if”) permet de tester une autre condition si la précédente était fausse. C’est comme si ton GPS disait : “Sinon, si la voie rapide est bouchée, prends la nationale.” 🚗
🔴 Enfin, l’instruction else capture tous les cas qui ne correspondent pas aux conditions précédentes. C’est le dernier recours de ton GPS : “Si tout le reste échoue, sors les chaussures de randonnée !” 🥾
Voici un exemple concret pour t’aider à choisir le bon tarif en fonction de l’âge :
age = 25
if age >= 65:
print("Tu bénéficies de la tarification senior. 🧓")
elif age < 18:
print("Tu bénéficies de la tarification jeune. 👦")
else:
print("Tu bénéficies de la tarification standard. 💰")Tu bénéficies de la tarification standard. 💰
Tu peux également combiner plusieurs conditions en utilisant les opérateurs logiques and, or et not. Par exemple pour offrir une promotion spéciale aux clients qui ont entre 18 et 25 ans ET qui sont étudiants.
Voici comment ton code pourrait gérer ça :
age = 20
est_etudiant = True
if age >= 18 and age <= 25 and est_etudiant:
print("Félicitations, vous bénéficiez de la promotion spéciale étudiante ! 🎓")
else:
print("Désolé, vous ne remplissez pas les conditions pour cette promotion. 😞")Félicitations, vous bénéficiez de la promotion spéciale étudiante ! 🎓
Ici, les conditions sont combinées avec and, ce qui signifie que toutes doivent être vraies pour que le code sous le if soit exécuté.
Tu peux aussi utiliser or pour exécuter le code si au moins une des conditions est vraie, et not pour inverser une condition.
Avec les conditions imbriquées, tu peux créer des instructions “si… alors… sinon…” à l’infini ! 🌀
Prenons un exemple concret. Disons que tu veux catégoriser les clients en fonction de leur âge et de leur statut étudiant :
age = 20
est_etudiant = True
if age < 18:
print("Vous bénéficiez du tarif junior. 👦")
else:
if est_etudiant:
print("Vous bénéficiez du tarif étudiant. 🎓")
else:
print("Vous bénéficiez du tarif standard. 💰")Vous bénéficiez du tarif étudiant. 🎓
Ici, on a une première condition qui vérifie si le client a moins de 18 ans. Si ce n’est pas le cas, on passe à une deuxième condition imbriquée dans le else pour vérifier si le client est étudiant.
Tu peux imbriquer autant de conditions que nécessaire pour gérer tous les cas de figure. Mais attention à ne pas te perdre dans les méandres des conditions imbriquées. Ton code doit rester lisible et compréhensible.
N’hésite pas à ajouter des commentaires pour expliquer ton raisonnement.
Toutefois il existe une façon plus concise de le faire : l’expression conditionnelle (ternary operators”).
Voici comment ça marche :
En gros, “Si la condition est vraie, prends la première sortie. Sinon, prends la deuxième.”
L’expression conditionnelle est structurée ainsi : valeur_si_vrai if condition else valeur_si_faux.
Voici un autre exemple pour t’inspirer :
note = 85
resultat = "Bravo, vous avez réussi ! 🎉" if note >= 60 else "Dommage, vous avez échoué. 😞"
print(resultat) Bravo, vous avez réussi ! 🎉
Tu pourrais utiliser des expressions conditionnelles en cascade, comme ceci :
age = 25
etudiant = True
statut = "junior" if age < 18 else ("etudiant" if etudiant else "adulte")
print(statut) etudiant
Ici, on a une expression conditionnelle (“junior” if age < 18) imbriquée dans une autre (“etudiant” if etudiant else “adulte”). C’est comme des poupées russes ! 🪆
Bien sûr, il faut utiliser cette technique avec parcimonie ça peut vite faire mal à la tête.
Récapitulons tout ce que tu as appris :
🚦 Les instructions if, elif et else pour prendre des décisions en fonction de conditions.
🧩 Les opérateurs logiques and, or et not pour combiner des conditions.
🌀 Les conditions imbriquées pour créer des structures de décision complexes.
🥪 Les expressions conditionnelles (opérateur ternaire) pour assigner des valeurs de manière concise.
🔗 Les conditions chaînées pour enchaîner des comparaisons de manière lisible.
Toujours dans le notebook : 2_structures_controles.ipynb essaye de résoudre ces exercices rapides.
Tu es restaurateur et tu veux rapidement calculer le pourboire en fonction de la qualité du service. 1. Demande à l’utilisateur le montant de la facture et une note pour le service (entre 1 et 5). 2. Calcule et affiche le pourboire suggéré
print("Bienvenue dans le Calculateur de Pourboire ! 🧮")
facture = float(input("Quel est le montant de la facture ? "))
note = int(input("Comment noteriez-vous le service (entre 1 et 5) ? "))
if note == 5:
pourboire = facture * 0.20
elif note == 4:
pourboire = facture * 0.15
elif note == 3:
pourboire = facture * 0.10
else:
pourboire = facture * 0.05
print(f"Pour une facture de {facture:.2f} € et un service noté {note}/5, nous suggérons un pourboire de {pourboire:.2f} €.")Écris un programme qui détermine si un nombre est pair ou impair.
if/else pour vérifier si le nombre est pair ou impair.Rappels sur la parité :
Un nombre est pair s’il est divisible par 2 (le reste de la division par 2 est 0).
Un nombre est impair s’il n’est pas divisible par 2 (le reste de la division par 2 est 1).
L’opérateur modulo % donne le reste d’une division.
Écris un programme qui effectue une opération arithmétique de base entre deux nombres.
+, -, *, /).if/elif/else pour effectuer l’opération correspondante.Points clés :
Utilise float() pour permettre des nombres décimaux.
Vérifie la division par zéro pour éviter les erreurs.
Gère les opérateurs non valides avec un message d’erreur.
num1 = float(input("Entrez le premier nombre : "))
num2 = float(input("Entrez le deuxième nombre : "))
operateur = input("Entrez l'opérateur (+, -, *, /) : ")
if operateur == "+":
resultat = num1 + num2
elif operateur == "-":
resultat = num1 - num2
elif operateur == "*":
resultat = num1 * num2
elif operateur == "/":
if num2 != 0:
resultat = num1 / num2
else:
print("Erreur : division par zéro !")
resultat = None
else:
print("Opérateur non valide.")
resultat = None
if resultat is not None:
print(f"{num1} {operateur} {num2} = {resultat}")Écris un programme qui détermine si une année est bissextile ou non.
Règles des années bissextiles :
Une année est bissextile si elle est divisible par 4.
Mais si elle est divisible par 100, elle doit aussi être divisible par 400 pour être bissextile.
Sinon, elle n’est pas bissextile.
annee = int(input("Entrez une année : "))
if annee % 4 == 0:
if annee % 100 == 0:
if annee % 400 == 0:
print(f"{annee} est une année bissextile.")
else:
print(f"{annee} n'est pas une année bissextile.")
else:
print(f"{annee} est une année bissextile.")
else:
print(f"{annee} n'est pas une année bissextile.")Écris un programme qui trouve le plus grand et le plus petit parmi trois nombres.
Astuces :
Utilise des expressions conditionnelles pour une syntaxe concise.
Compare chaque nombre aux deux autres pour trouver le max/min.
Pas besoin de trier complètement, juste de trouver les extrêmes.
a = float(input("Entrez le premier nombre : "))
b = float(input("Entrez le deuxième nombre : "))
c = float(input("Entrez le troisième nombre : "))
max_num = a if a >= b and a >= c else b if b >= c else c
min_num = a if a <= b and a <= c else b if b <= c else c
print(f"Le plus grand nombre est : {max_num}")
print(f"Le plus petit nombre est : {min_num}")Écris un programme qui détermine la catégorie d’âge d’une personne.
Catégories d’âge typiques :
Enfant : de 0 à 12 ans
Adolescent : de 13 à 17 ans
Adulte : de 18 à 64 ans
Senior : 65 ans et plus
Des coding sessions sur mesure, parce que tu es unique et que
Tu rêves de progresser rapidement en code mais tu bloques sur certains concepts ?
Tu as besoin d'un coup de pouce personnalisé par un pro pour franchir un cap ? Pourtant
C'est le moment de réserver ta coding session individuelle avec un expert DAMA. Un vrai booster de compétences, sur-mesure, dès que tu en as besoin.
Comment ça marche ?
1. Tu remplis le formulaire de contact en 2 min pour exprimer ton besoin
2. On fixe ensemble un créneau pour un call vidéo de 60 min
3. Lors du call, moi ou un.e expert t'aide à résoudre ton problème de code en direct
Les avantages ?
Un accompagnement 100% personnalisé et interactif
Des conseils concrets et des astuces de pro
Un gros boost de motivation et de confiance
Alors n'attends plus et clique sur le bouton ci-dessous pour réserver ta session dès maintenant.
Les boucles sont des outils indispensables pour répéter des actions sans se fatiguer. 💪
C’est un moyen de dire à Python : “Hé, répète-moi ça un certain nombre de fois, tu veux bien ?”. Et Python, en bon petit soldat, va exécuter le code dans la boucle autant de fois que tu le lui demandes.
Il existe deux types de boucles principales :
Voici à quoi ressemble une boucle for :
Ici, element est une variable temporaire qui va prendre la valeur de chaque élément de la séquence à chaque tour de boucle.
Voici à quoi ressemble une boucle while :
Tant que la condition est vraie, Python va exécuter le code dans la boucle. Dès que la condition devient fausse, il sort de la boucle et passe à la suite, comme un enfant qui s’endort enfin dans la voiture. 😴
Maintenant, quelques petits trucs sympas à savoir sur les boucles :
Tu peux imbriquer des boucles les unes dans les autres, comme des poupées russes. C’est super pratique pour parcourir des structures de données complexes, comme des listes de listes. 🪆
Avec les boucles for, tu peux parcourir les clés et les valeurs d’un dictionnaire en même temps grâce à la méthode items(). C’est comme ouvrir deux cadeaux en un ! 🎁
Si tu veux sortir d’une boucle avant la fin, tu peux utiliser l’instruction break. C’est comme un éjection de siège dans un avion, en cas d’urgence. 🪂
Si tu veux passer à l’itération suivante sans finir l’itération en cours, tu peux utiliser l’instruction continue. C’est comme sauter une page dans un livre qui ne t’intéresse pas. 📖
Voilà, tu sais tout (ou presque) sur les boucles en Python ! C’est un outil super puissant qui te permettra d’automatiser plein de tâches répétitives et de traiter de grandes quantités de données en un clin d’œil.
Tu verras des exemples plus complets une fois que je t’aurais introduit les structures de données !
La première partie de ce cours est terminé ! Je te propose maintenant un projet pour récapituler l’ensemble des concepts que tu as appris.
Créer un programme Python qui génère des blagues nulles en fonction du choix de l’utilisateur. Ce projet te permettra de manipuler les variables pour stocker du texte et d’utiliser les conditions pour afficher la bonne blague.
Ouvre un notebook intitulé : 3_projet1.ipynb
Définir trois variables pour stocker le début de chaque blague (debut_blague1, debut_blague2, debut_blague3).
Définir trois autres variables pour stocker la réponse à chaque blague (reponse_blague1, reponse_blague2, reponse_blague3).
Demander à l’utilisateur de choisir un numéro de blague entre 1 et 3 à l’aide de la fonction input(). Stocker ce choix dans une variable numero_blague.
Utiliser des conditions if/elif/else pour afficher la blague et sa réponse en fonction du choix de l’utilisateur :
Si numero_blague est égal à “1”, afficher debut_blague1 et reponse_blague1.
Si numero_blague est égal à “2”, afficher debut_blague2 et reponse_blague2.
Si numero_blague est égal à “3”, afficher debut_blague3 et reponse_blague3.
Si numero_blague n’est ni “1”, ni “2”, ni “3”, afficher un message d’erreur indiquant que seules les blagues 1 à 3 sont disponibles.
Utilise des noms de variables explicites pour faciliter la lecture de ton code.
N’oublie pas les deux-points : après chaque condition if/elif/else.
Utilise la fonction print() pour afficher du texte.
Amuse-toi bien avec ce projet et n’hésite pas à partager tes meilleures (ou pires) blagues ! 😄
'''
Commençons par définir les variables qui vont
stocker les différentes parties de nos blagues nulles :
'''
debut_blague1 = "Pourquoi est-ce que le poulet a traversé la route ?"
debut_blague2 = "Que dit un informaticien quand il s'ennuie ?"
debut_blague3 = "Quel est le comble pour un électricien ?"
reponse_blague1 = "Pour aller de l'autre côté !"
reponse_blague2 = "Je me fichier !"
reponse_blague3 = "De ne pas être au courant !"
# L'utilisateur choisi un numéro de blague :
numero_blague = input("Choisissez un numéro de blague entre 1 et 3 : ")
'''
Vérifions que l'utilisateur a bien entré un nombre
valide avec des conditions if/elif/else :
'''
if numero_blague == "1":
print(debut_blague1)
print("Réponse :", reponse_blague1)
elif numero_blague == "2":
print(debut_blague2)
print("Réponse :", reponse_blague2)
elif numero_blague == "3":
print(debut_blague3)
print("Réponse :", reponse_blague3)
else:
print("Désolé, je ne connais que 3 blagues ! Essayez un nombre entre 1 et 3.")Parlons à présent d’un sujet fondamental en Python : les types de données séquentielles. C’est un peu comme les briques de base pour construire des programmes solides. 🧱
On va commencer en douceur avec les listes.
C’est quoi une chaîne de caractères (str) ?
C’est tout simplement une séquence de caractères, comme un mot ou une phrase. En Python, on les délimite par des guillemets simples ('...'), doubles ("...") ou triples ('''...''' ou """...""" pour les chaînes sur plusieurs lignes).
Par exemple :
Mais attention, contrairement à d’autres langages, les chaînes en Python sont immuables. Ça veut dire qu’on ne peut pas modifier un caractère directement. Si on veut changer un caractère, il faut créer une nouvelle chaîne.
Par exemple tu souhaites inclure un caractère “illégal” dans une chaîne, comme un guillemet double à l’intérieur d’une chaîne entourée de guillemets doubles. Si tu fais ça :
Python va râler et vous dire “Hé, j’comprends plus rien là !” 😡
C’est là qu’interviennent les caractères d’échappement ! Ce sont des caractères spéciaux, précédés d’un backslash \, qui permettent d’inclure des caractères normalement interdits dans une chaîne.
Comment ça marche ?
Pour échapper un caractère, il suffit de mettre un backslash \ juste avant. Par exemple, pour inclure un guillemet double dans une chaîne entourée de guillemets doubles :
Le backslash avant le guillemet double dit à Python “Attention, le caractère suivant est spécial, ne le considère pas comme la fin de la chaîne !”
Les principaux caractères d’échappement
Voici une petite liste des principaux caractères d’échappement :
| Caractère | Description | Exemple |
|---|---|---|
\' |
Guillemet simple | 'C\'est un exemple' |
\" |
Guillemet double | "Voici un \"exemple\"" |
\\ |
Backslash | "C:\\Users\\John" |
\n |
Nouvelle ligne | "Bonjour,\ncomment allez-vous ?" |
\t |
Tabulation | "Nom:\tJohn\nPrénom:\tDoe" |
\r |
Retour chariot | "Texte\rTexte sur la même ligne" |
\b |
Retour arrière | "Texte\b\b corrigé" |
\f |
Saut de page | "Page 1\fPage 2" |
Quelques explications supplémentaires :
\' permet d’inclure un guillemet simple dans une chaîne entourée de guillemets simples.\" permet d’inclure un guillemet double dans une chaîne entourée de guillemets doubles.\\ permet d’inclure un backslash littéral dans une chaîne.\n insère un retour à la ligne, \t une tabulation, \r un retour chariot.\b fait un retour arrière (supprime le caractère précédent), utile pour corriger des erreurs de frappe.\f indique un saut de page, surtout utilisé pour les impressions.Par exemple, pour ajouter un retour à la ligne dans une chaîne :
Pour connaître le nombre de caractères dans une chaîne, rien de plus simple : utilise la fonction len() ! Elle renvoie un entier représentant la longueur de la chaîne.
Ici, la chaîne texte contient 23 caractères espaces et ponctuation compris.
Tu veux savoir si certain mot ou une certaine séquence de caractères est présent dans la chaîne ? Utilise l’opérateur in ! Il renvoie True si la sous-chaîne est présente, False sinon.
Tu peux également utiliser in dans une structure conditionnelle :
Le mot 'vie' est présent dans la phrase.
À l’inverse, tu peux vérifier qu’une sous-chaîne n’est PAS présente dans une chaîne avec l’opérateur not in :
Et comme pour in, tu peux l’utiliser dans une condition :
On peut facilement naviguer dans une chaîne comme dans une carte au trésor grâce à l’indexation et au slicing
Indexation
Imagine une chaîne comme une grande armoire à tiroirs, où chaque tiroir contient un caractère. L’indexation, c’est le fait d’ouvrir un tiroir précis pour récupérer le caractère qu’il contient.
En Python, chaque caractère a un numéro de tiroir, appelé “index”. Mais attention, on commence à compter à partir de 0 ! Donc dans le mot “Python”, ‘P’ a l’index 0, ‘y’ a l’index 1, etc.
Slicing
Si on veut récupérer une partie de la chaîne (une “tranche”), c’est là qu’intervient le slicing.
Le slicing utilise la syntaxe [début:fin:pas]. Tu indiques l’index de début, l’index de fin (non inclus), et éventuellement le pas (le nombre de caractères à sauter entre chaque caractère récupéré).
Si tu omets l’index de début, Python part du début de la chaîne.
Si tu omets l’index de fin, Python va jusqu’à la fin de la chaîne.
Si tu mets un index négatif, Python part de la fin de la chaîne !
message = "Bonjour tout le monde !"
print(message[0:7])
print(message[8:15])
print(message[::2])
mot = "Python"
print(mot[0:2])
print(mot[2:5])
print(mot[0:6:2]) Bonjour
tout le
Bnortu emne!
Py
tho
Pto
C’est super pratique pour extraire des morceaux spécifiques d’une chaîne.
C’est un truc super utile pour construire des messages dynamiques ou formater des données.
La façon la plus simple de combiner des chaînes, c’est d’utiliser l’opérateur +. Il permet de “coller” deux chaînes bout à bout.
Ici, on concatène la chaîne prenom, un espace " ", et la chaîne nom pour obtenir le nom complet.
⚠️ Attention cependant, + ne fonctionne qu’avec des chaînes ! Si tu essayes de concaténer une chaîne et un nombre, Python va râler :
Pour résoudre ce problème, il faut convertir, “casté”, le nombre en chaîne avec str() :
Interpolation avec les f-strings
Comme tu l’as vu plus haut, il existe une façon plus élégante de combiner des chaînes et des variables : les f-strings !
Il suffit de préfixer la chaîne avec f et d’inclure les variables entre accolades {}.
Je m'appelle Ményssa et j'ai 25 ans.
On peut aussi ajouter un modifier après le placeholder, en utilisant le symbole : suivi d’un format. Par exemple, .2f pour afficher un nombre avec 2 décimales :
Le prix est de 9.99 euros.
Quelques modifiers utiles : - .2f : nombre à virgule avec 2 décimales - d : entier - s : chaîne de caractères - % : pourcentage
score = 0.9
message = f"Votre score est de {score:.0%}."
print(message) # Affiche "Votre score est de 90%."Votre score est de 90%.
On peut même appeler des fonctions dans un placeholder ! Imagine qu’on veuille mettre en majuscules un nom :
Bonjour DUPONT, comment allez-vous ?
Ici, la fonction upper() est appelée directement dans le placeholder pour mettre le nom en majuscules.
C’est beaucoup plus lisible, non ? Et plus besoin de se soucier du type des variables, Python gère la conversion tout seul.
Jointure avec join()
Enfin, si tu as une liste de chaînes et que tu souhaites les combiner en une seule chaîne, tu peux utiliser la méthode join() :
Enfin, Python offre plein de méthodes* pratiques pour manipuler les chaînes, comme find() pour chercher une sous-chaîne, replace() pour remplacer des caractères, ou encore split() pour découper une chaîne en liste selon un séparateur.
* Les méthodes sont un concept fondamental de la programmation orientée objet. Elles permettent de définir le comportement des objets, comment ils réagissent aux différentes opérations.
Quelques points clés sur les méthodes :
Une méthode est toujours définie dans le contexte d’une classe. Elle fait partie intégrante de la définition de cette classe.
Quand on crée un objet à partir d’une classe (on dit qu’on instancie la classe), cet objet a accès à toutes les méthodes définies dans sa classe.
Une méthode peut accéder et souvent modifier les données (attributs) de l’objet sur lequel elle est appelée. C’est ce qu’on appelle l’état interne de l’objet.
Pour appeler une méthode sur un objet, on utilise la notation objet.methode(). C’est ce qu’on a fait dans les exemples avec les chaînes de caractères.
Donc quand on écrit prenom.upper(), upper() est une méthode de la classe str (la classe des chaînes de caractères). Elle est appelée sur l’objet prenom et renvoie une nouvelle chaîne en majuscules.
Avant de se lancer, il y a une chose essentielle à savoir :
⚠️ Toutes les méthodes de chaînes renvoient de nouvelles valeurs. Elles ne modifient pas la chaîne d’origine. ⚠️
Garde bien ça en tête, c’est crucial pour éviter les bugs ! 😉 Allez, c’est parti pour un tour d’horizon complet avec plein d’exemples concrets ! 🚀
capitalize() : mettre la première lettre en majuscule 🔠
lower() et upper() : convertir en minuscules ou majuscules 🔡
ményssa
MÉNYSSA
Ményssa
count() : compter le nombre d’occurrences d’une sous-chaîne 🔢
startswith() et endswith() : vérifier le début ou la fin d’une chaîne 🔍
True
True
Ményssa
find() et index() : trouver la position d’une sous-chaîne 📍
La différence : find() renvoie -1 si la sous-chaîne n’est pas trouvée, index() lève une erreur.
isalpha(), isdigit(), isalnum() : vérifier le type de caractères 🔠🔢
prenom = "Ményssa"
print(prenom.isalpha())
print(prenom.isdigit())
print(prenom.isalnum())
print(prenom) True
False
True
Ményssa
join() : assembler une liste de chaînes 🧩
Ményssa, Alice, Bob
['Ményssa', 'Alice', 'Bob']
split() : découper une chaîne en liste 🔪
replace() : remplacer une sous-chaîne par une autre 🔄
strip(), lstrip(), rstrip() : supprimer les espaces 🧹
prenom = " Ményssa "
print(prenom.strip())
print(prenom.lstrip())
print(prenom.rstrip())
print(prenom) Ményssa
Ményssa
Ményssa
Ményssa
Voilà, tu as maintenant un bel arsenal de méthodes pour manipuler les chaînes de caractères en Python ! Et surtout, tu sais que ces méthodes ne modifient pas la chaîne d’origine, ce qui t’évitera bien des surprises.
Voici les points clés à retenir sur les chaînes de caractères :
Comme les listes et les tuples, les chaînes sont des séquences. Cela signifie qu’on peut accéder à chaque caractère par son index, parcourir la chaîne avec une boucle for, utiliser le slicing, etc.
prenom = "Ményssa"
print(prenom[0]) # Affiche "M"
print(prenom[-1]) # Affiche "a"
print(prenom[1:4]) # Affiche "ény"Une fois créée, une chaîne ne peut pas être modifiée. Toutes les opérations qui semblent modifier une chaîne (comme les méthodes upper(), replace(), etc.) renvoient en fait une nouvelle chaîne.
prenom = "Ményssa"
prenom_maj = prenom.upper()
print(prenom) # Affiche "Ményssa" (inchangé)
print(prenom_maj) # Affiche "MÉNYSSA" (nouvelle chaîne)C’est une conséquence directe de l’immuabilité des chaînes. Quand vous appelez une méthode sur une chaîne, cela ne change pas la chaîne d’origine, mais renvoie une nouvelle chaîne.
message = "Bonjour Ményssa"
message.replace("Bonjour", "Salut")
print(message) # Affiche toujours "Bonjour Ményssa"Pour vraiment changer la chaîne, il faut réassigner le résultat de la méthode à la variable :
message = "Bonjour Ményssa"
message = message.replace("Bonjour", "Salut")
print(message) # Affiche maintenant "Salut Ményssa"Python fournit un grand nombre de méthodes pour manipuler les chaînes. Certaines des plus utiles sont :
upper(), lower(), capitalize() pour changer la cassestrip(), lstrip(), rstrip() pour supprimer les espacesstartswith(), endswith() pour vérifier le début ou la finfind(), index() pour chercher une sous-chaînereplace() pour remplacer une sous-chaîne par une autresplit() pour découper une chaîne en listejoin() pour assembler une liste en chaîneToujours dans le notebook : 4_Structures_donnees.ipynb mets tes connaissances à l’épreuve avec ces exercices rapides :
Voici une série d’exercices originaux sur les chaînes de caractères en Python, sans utiliser de fonctions :
Pense à utiliser le slicing pour comparer le mot et son inverse, comme mot == mot[::-1]
N’oublie pas de convertir le mot en minuscules avant de vérifier s’il est un palindrome, pour éviter les problèmes de casse
Tu peux aussi utiliser une boucle pour comparer chaque lettre du début avec chaque lettre de la fin
Utilise les méthodes upper() et lower() pour convertir les lettres en majuscules ou minuscules
Tu peux vérifier si un caractère est une voyelle avec caractere in ‘aeiouyAEIOUY’
Pense à créer une nouvelle chaîne pour stocker le résultat, plutôt que de modifier la phrase d’origine
Utilise la méthode split() pour découper la phrase en mots, puis utilise len() pour compter le nombre de mots
Si tu veux le faire manuellement, pense à vérifier si le caractère précédent était un espace avant d’incrémenter le compteur, pour éviter de compter plusieurs espaces consécutifs comme plusieurs mots
Là encore, le slicing peut être très utile : chaine[::-1] te donne directement la chaîne inversée
Si tu veux le faire avec une boucle, pars de la fin de la chaîne et va vers le début, en ajoutant chaque lettre à une nouvelle chaîne
Autre chose cool avec les chaînes : on peut facilement les parcourir caractère par caractère avec une boucle for !
Ça affichera chaque lettre sur une ligne. Idéal pour traiter chaque caractère un par un.
Si tu te demandes quelles ont été mes ressources pour ce cours, hormis le site officiel, les voici :
Python’s any and all functions: Documentation officielle sur les fonctions any et all de Python, qui permettent de vérifier si au moins un élément d’une séquence est vrai ou si tous les éléments sont vrais, respectivement.
Python’s eval() function: Documentation officielle sur la fonction eval() de Python, qui évalue une expression Python passée sous forme de chaîne de caractères.
filter() in Python: Documentation officielle sur la fonction filter() de Python, qui filtre les éléments d’une séquence en fonction d’une fonction de filtrage donnée.
dir() in Python: Documentation officielle sur la fonction dir() de Python, qui retourne la liste des noms dans l’espace de noms local ou global.
isinstance and issubclass in Python: Documentation officielle sur les fonctions isinstance() et issubclass() de Python, utilisées pour vérifier les types d’objets.
len() in Python: Documentation officielle sur la fonction len() de Python, qui retourne la longueur (le nombre d’éléments) d’un objet.
iter() in Python: Documentation officielle sur la fonction iter() de Python, qui retourne un itérateur pour un objet.
Why should I use operator.itemgetter(x) instead of [x]?: Une discussion sur Stack Overflow expliquant pourquoi il est préférable d’utiliser operator.itemgetter(x) plutôt que [x] pour accéder aux éléments d’une séquence.
Python’s Sorting HowTo wiki: Guide officiel sur la manière de trier en Python, présentant différentes méthodes de tri pour différentes situations.
Python’s Generators wiki: Page wiki officielle sur les générateurs en Python, expliquant leur utilisation et leur fonctionnement.
Python’s Decorators wiki: Page wiki officielle sur les décorateurs en Python, fournissant des informations sur leur utilisation et leur création.
Python’s Decorator Library: Bibliothèque officielle de décorateurs en Python, offrant une variété de décorateurs prêts à l’emploi pour différentes tâches.
How to make a chain of function decorators?: Une discussion sur Stack Overflow expliquant comment créer une chaîne de décorateurs de fonctions en Python.
A Guide to Python’s Magic Methods: Guide détaillé sur les méthodes magiques en Python, qui permettent de personnaliser le comportement des objets Python.
The Iterator Protocol: How “For Loops” Work in Python: Article expliquant en détail le protocole de l’itérateur en Python et comment les boucles for fonctionnent en utilisant ce protocole.
How to make an iterator in Python: Article expliquant comment créer un itérateur personnalisé en Python en implémentant les méthodes spéciales iter() et next().
Overusing lambda expressions in Python: Article expliquant les dangers de la surutilisation des expressions lambda en Python et quand il est approprié de les utiliser.
Python Errors and Built -in Exceptions: Documentation officielle sur les erreurs et exceptions intégrées en Python, expliquant les différentes erreurs et exceptions qui peuvent se produire dans un programme Python.
Python’s Functions Are First-Class: Article expliquant ce que signifie le fait que les fonctions sont des citoyens de première classe en Python, et comment cela influence la programmation en Python.
The Zen of Python, Explained: Article expliquant les principes philosophiques derrière le “Zen de Python”, qui sont les principes directeurs de la conception du langage Python.
How to use Python’s min() and max() with nested lists: Article expliquant comment utiliser les fonctions min() et max() de Python avec des listes imbriquées pour trouver les éléments minimaux et maximaux.
for/else in Python: Article expliquant l’utilisation de la clause else avec les boucles for en Python et dans quels cas elle est utile.
Why does python use ‘else’ after for and while loops?: Une discussion sur Stack Overflow expliquant pourquoi Python utilise la clause else après les boucles for et while, et comment elle fonctionne.
Generator comprehensions in Python: Documentation officielle sur les expressions de générateur en Python, qui permettent de créer des générateurs de manière concise et élégante.
How to re-raise an exception in nested try/except blocks?: Une discussion sur Stack Overflow expliquant comment ré-élever une exception dans des blocs try/except imbriqués en Python.
Python File I/O: Documentation officielle sur les opérations d’entrée/sortie de fichiers en Python, expliquant comment lire et écrire des fichiers en Python.
Lazy Method for Reading Big File in Python?: Une discussion sur Stack Overflow proposant des méthodes efficaces pour lire de gros fichiers de manière paresseuse en Python.
How do I merge two dictionaries in a single expression (taking union of dictionaries)?: Une discussion sur Stack Overflow expliquant comment fusionner deux dictionnaires en une seule expression en Python.
Python Dictionary Tips: Article fournissant des conseils utiles sur l’utilisation efficace des dictionnaires en Python.
What are the differences between type() and isinstance()?: Une discussion sur Stack Overflow expliquant les différences entre les fonctions type() et isinstance() en Python et quand les utiliser.
Python 3 Tutorial by Aman Chadha: Ce tutoriel Python 3 fournit une introduction complète au langage de programmation Python, couvrant les concepts de base, les structures de contrôle, les fonctions, les classes, les modules et bien plus encore. Il est rédigé de manière claire et accessible, ce qui en fait une ressource utile pour les débutants et les programmeurs intermédiaires qui souhaitent renforcer leurs connaissances en Python.
En consultant ces références, tu pourras approfondir votre compréhension des concepts abordés dans ce notebook et continuer à développer vos compétences en Python.
__main__
Pour la méthode sortir_album(), assure-toi de vérifier que l’album n’est pas déjà dans la liste avant de l’ajouter. Cela évitera les doublons dans la discographie du rappeur.
Ce cours est sous licence Creative Commons Attribution-NonCommercial 4.0 (CC BY-NC 4.0) International licence.